package com.springboot.nacos.config;

import com.springboot.nacos.config.client.NacosPropertySourceLocator;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 注入springboot容器中
 */
//Full模式（true就是单例每次都要检测，会降低速度 组件间有依赖必须使用）,Lite模式(false是每次获取都是创建新的对象 组件间相互没有依赖情况下使用)
@Configuration(proxyBeanMethods = false)
//没有该配置也可以加载
@ConditionalOnProperty(name = {"small.nacos.config.enabled"}, matchIfMissing = true)
public class NacosConfigBootstrapConfiguration {

    /**
     * 配置文件配置在bootstrap中才能获取到
     *
     * @return
     */
    @Bean
    public NacosConfigProperties nacosConfigProperties() {
        return new NacosConfigProperties();
    }

    @Bean
    public NacosConfigManager nacosConfigManager(NacosConfigProperties nacosConfigProperties) {
        return new NacosConfigManager(nacosConfigProperties);
    }

    @Bean
    public NacosPropertySourceLocator nacosPropertySourceLocator(NacosConfigManager nacosConfigManager) {
        return new NacosPropertySourceLocator(nacosConfigManager);
    }
}
